# 使用类装饰已有函数
class MyDecorator(object):
    def __init__(self,func):
        self.__func=func

    # call魔法可以让对象变成可调用的对象
    def __call__(self, *args, **kwargs):
        print('over')
        self.__func()

# 函数能调用是函数内部使用了__call__

@MyDecorator  #@MyDecorator => show = MyDecorator(show)
def show():
    print('after class')

show()